package com.jynn.mesh.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jynn.mesh.domain.DetailContractDTO;
import com.jynn.mesh.domain.DialogExtendDTO;
import com.jynn.mesh.entity.FaChatgptDetailContract;
import com.jynn.mesh.entity.FaChatgptDialogExtend;
import com.jynn.mesh.service.IFaChatgptDetailContractService;
import com.jynn.mesh.service.IFaChatgptDialogExtendService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * 合同审查意见 前端控制器
 * </p>
 *
 * @author worm
 * @since 2024-10-10
 */
@RestController
@RequestMapping("/aiDocs")
public class AiDocsController {
    @Autowired
    private IFaChatgptDetailContractService chatgptDetailContractService;

    @Autowired
    private IFaChatgptDialogExtendService chatgptDialogExtendService;



    @RequestMapping(value = "getDeatilByDialogId")
    public List<FaChatgptDetailContract> getDeatilByDialogId(){

        List<FaChatgptDetailContract> list = chatgptDetailContractService.list(
                new LambdaQueryWrapper<>(new FaChatgptDetailContract())
                        .select(FaChatgptDetailContract::getChatgptDialogId,
                                FaChatgptDetailContract::getChatgptDetailId,
                                FaChatgptDetailContract::getOrigin,
                                FaChatgptDetailContract::getEdit,
                                FaChatgptDetailContract::getExamine,
                                FaChatgptDetailContract::getState)
                        .eq(FaChatgptDetailContract::getChatgptDialogId, 1545)
                );
//        list.forEach(u -> LOGGER.info("当前用户数据:{}", u));
        return list;
    }


    @RequestMapping(value = "getDialogFile")
    public DialogExtendDTO getDialogFile(String dialogId){
        FaChatgptDialogExtend dialogExtend = chatgptDialogExtendService.getOne(new LambdaQueryWrapper<>(new FaChatgptDialogExtend())
                .eq(FaChatgptDialogExtend::getChatgptDialogId,dialogId));


        List<FaChatgptDetailContract> list = chatgptDetailContractService.list(
                new LambdaQueryWrapper<>(new FaChatgptDetailContract())
                        .select(FaChatgptDetailContract::getChatgptDialogId,
                                FaChatgptDetailContract::getChatgptDetailId,
                                FaChatgptDetailContract::getOrigin,
                                FaChatgptDetailContract::getEdit,
                                FaChatgptDetailContract::getExamine,
                                FaChatgptDetailContract::getState)
                        .eq(FaChatgptDetailContract::getChatgptDialogId, dialogId)
        );

        List<DetailContractDTO> detailContractDTOS = list.stream()
                .map(original -> {
                    try {
                        DetailContractDTO copied = new DetailContractDTO();
                        BeanUtils.copyProperties(original, copied);
                        return copied;
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                })
                .collect(Collectors.toList());
        DialogExtendDTO dialogExtendDTO = new DialogExtendDTO();
        BeanUtils.copyProperties(dialogExtend, dialogExtendDTO);
        dialogExtendDTO.setDetailContractDTOList(detailContractDTOS);

        return dialogExtendDTO;
    }
}
